{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Introduction\n",
    "\n",
    "This example demonstrates how to convert a network from [Caffe's Model Zoo](https://github.com/BVLC/caffe/wiki/Model-Zoo) for use with Lasagne. We will be using the [NIN model](https://gist.github.com/mavenlin/e56253735ef32c3c296d) trained for CIFAR10.\n",
    "\n",
    "We will create a set of Lasagne layers corresponding to the Caffe model specification (prototxt), then copy the parameters from the caffemodel file into our model."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Final product\n",
    "If you just want to try the final result, you can download the pickled weights [here](https://s3.amazonaws.com/lasagne/recipes/pretrained/cifar10/model.pkl)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Converting from Caffe to Lasagne\n",
    "### Download the required files\n",
    "\n",
    "First we download `cifar10_nin.caffemodel` and `model.prototxt`. The supplied `train_val.prototxt` was modified to replace the data layers with an input specification, and remove the unneeded loss/accuracy layers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "!wget https://www.dropbox.com/s/blrajqirr1p31v0/cifar10_nin.caffemodel \n",
    "!wget https://gist.githubusercontent.com/ebenolson/91e2cfa51fdb58782c26/raw/b015b7403d87b21c6d2e00b7ec4c0880bbeb1f7e/model.prototxt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import Caffe\n",
    "\n",
    "To load the saved parameters, we'll need to have Caffe's Python bindings installed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import caffe"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load the pretrained Caffe network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "net_caffe = caffe.Net('model.prototxt', 'cifar10_nin.caffemodel', caffe.TEST)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import Lasagne"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import lasagne\n",
    "from lasagne.layers import InputLayer, DropoutLayer, FlattenLayer\n",
    "from lasagne.layers.dnn import Conv2DDNNLayer as ConvLayer\n",
    "from lasagne.layers import Pool2DLayer as PoolLayer\n",
    "from lasagne.utils import floatX"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create a Lasagne network\n",
    "Layer names match those in `model.prototxt`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "net = {}\n",
    "net['input'] = InputLayer((None, 3, 32, 32))\n",
    "net['conv1'] = ConvLayer(net['input'], num_filters=192, filter_size=5, pad=2, flip_filters=False)\n",
    "net['cccp1'] = ConvLayer(net['conv1'], num_filters=160, filter_size=1, flip_filters=False)\n",
    "net['cccp2'] = ConvLayer(net['cccp1'], num_filters=96, filter_size=1, flip_filters=False)\n",
    "net['pool1'] = PoolLayer(net['cccp2'], pool_size=3, stride=2, mode='max', ignore_border=False)\n",
    "net['drop3'] = DropoutLayer(net['pool1'], p=0.5)\n",
    "net['conv2'] = ConvLayer(net['drop3'], num_filters=192, filter_size=5, pad=2, flip_filters=False)\n",
    "net['cccp3'] = ConvLayer(net['conv2'], num_filters=192, filter_size=1, flip_filters=False)\n",
    "net['cccp4'] = ConvLayer(net['cccp3'], num_filters=192, filter_size=1, flip_filters=False)\n",
    "net['pool2'] = PoolLayer(net['cccp4'], pool_size=3, stride=2, mode='average_exc_pad', ignore_border=False)\n",
    "net['drop6'] = DropoutLayer(net['pool2'], p=0.5)\n",
    "net['conv3'] = ConvLayer(net['drop6'], num_filters=192, filter_size=3, pad=1, flip_filters=False)\n",
    "net['cccp5'] = ConvLayer(net['conv3'], num_filters=192, filter_size=1, flip_filters=False)\n",
    "net['cccp6'] = ConvLayer(net['cccp5'], num_filters=10, filter_size=1, flip_filters=False)\n",
    "net['pool3'] = PoolLayer(net['cccp6'], pool_size=8, mode='average_exc_pad', ignore_border=False)\n",
    "net['output'] = lasagne.layers.FlattenLayer(net['pool3'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "### Copy the parameters from Caffe to Lasagne"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "layers_caffe = dict(zip(list(net_caffe._layer_names), net_caffe.layers))\n",
    "\n",
    "for name, layer in net.items():\n",
    "    try:\n",
    "        layer.W.set_value(layers_caffe[name].blobs[0].data)\n",
    "        layer.b.set_value(layers_caffe[name].blobs[1].data)       \n",
    "    except AttributeError:\n",
    "        continue"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": false
   },
   "source": [
    "# Trying it out\n",
    "Let's see if that worked. \n",
    "\n",
    "### Import numpy and set up plotting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pickle\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Download some test data\n",
    "Since the network expects ZCA whitened and normalized input, we'll download a preprocessed portion (1000 examples) of the CIFAR10 test set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "!wget https://s3.amazonaws.com/lasagne/recipes/pretrained/cifar10/cifar10.npz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = np.load('cifar10.npz')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Make predictions on the test data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "prob = np.array(lasagne.layers.get_output(net['output'], floatX(data['whitened']), deterministic=True).eval())\n",
    "predicted = np.argmax(prob, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check our accuracy\n",
    "We expect around 90%"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.894\n"
     ]
    }
   ],
   "source": [
    "accuracy = np.mean(predicted == data['labels'])\n",
    "print(accuracy)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Double check\n",
    "Let's compare predictions against Caffe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "net_caffe.blobs['data'].reshape(1000, 3, 32, 32)\n",
    "net_caffe.blobs['data'].data[:] = data['whitened']\n",
    "prob_caffe = net_caffe.forward()['pool3'][:,:,0,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.allclose(prob, prob_caffe)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Graph some images and predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5wAAABuCAYAAABLABxeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXmQHXd1L366++77nV3SjDTa982WZXkD7zaxDdgJEIjB\nNg9XzC9QlRBIuSok5VAU9VIhCzFxIKSAEMIzsQnwDLz3INixLbAxlm0sW5a1zYxG0uzLvXP3293f\n3x/nfPucsSRbntHIS76fKpfG3ff27f4u5/vtcz7ncyylFBgYGBgYGBgYGBgYGBgYnG3Yb/QNGBgY\nGBgYGBgYGBgYGLw9YV44DQwMDAwMDAwMDAwMDBYE5oXTwMDAwMDAwMDAwMDAYEEQWqgLW5Z11pJD\nlVLW2brW2w1ns51PB9P+CNPW5w7noq3PNt6qfbfQbf1WbZeFwEK2tWlnxlvRfswHb2TfG/tx7nC2\n29q07elhbMjZx4K9cAIAnA1BIssy8+G1sJDCT6b9Z8O09bnDW0nQ7K3edwvV1m/1dlkILERbm3Y+\nGW8l+zEfvBn63tiPc4ez1dambV8bxoacXRhKrYGBgYGBgYGBgYGBgcGC4E31wvnoo4/CE0888Ubf\nxtsGvb29MDk5edLxhx56CP7yL//yDbijty9MW59b3HDDDVAsFl/Xd26//Xb43ve+t0B39PbA3//9\n38OGDRvgwx/+8Bt9K297mLZ+8+GHP/whvPTSSwv6G/39/bB58+ZTnrvzzjth//79AHD6NeXNDDOm\n33ww++pzC2NDTo8FpdS+XjzyyCOQTqfhoosueqNv5W0By7JOSQm46aab4KabbnoD7ujtC9PW5xY/\n/vGPTzqm2/909BDLsgyN6DXwj//4j/Dzn/8cFi9eHBxzXRdCoTfVUvG2gGnrNx++//3vw0033QTr\n169/Q37/a1/7WvD3W9FWmTH95oPZV59bGBtyepyTCOe3vvUt2Lp1K2zbtg0+8pGPwI9+9CPYtWsX\nnHfeeXDNNdfA6Ogo9Pf3w1e/+lX427/9W9i+fTvs3r37XNza2wblchluuOEG2LZtG2zevBn+/d//\nHQAA7r33Xjj//PNhy5Yt8PLLLwMAwDe/+U345Cc/CQAY9bnrrrvgggsugLVr155yI28wG6atzy1u\nvvlm2LFjB2zatCkwptpz19/fD2vXroXbbrsNNm/eDIODg5BKpeBTn/oUbNq0Ca6++moYHx8/6Zqf\n+9znYOfOnbB582b4/d///eD45ZdfDnfffTdceOGFsHbt2sAOeZ4Hn/nMZ2Dnzp2wdetW+Kd/+qdz\n8/DnEHfddRccOXIErr/+esjlcvCRj3wELr30UrjttttgYGAArrzySti6dStcffXVMDg4CAAAhw8f\nhl27dsGWLVvgs5/9LKTT6Tf4Kd4aMG197nAq+5FKpYLzDz74INxxxx3wxBNPwEMPPQSf+cxnYPv2\n7XDkyBF47rnnYNeuXbB161a45ZZbYHp6GgDQTnzqU5+CCy64ANavXw+//vWv4eabb4Y1a9bAn/3Z\nnwXX/pu/+RvYvHkzbN68Gb70pS8Fx13XhVtvvRU2bNgA73vf+6BarQbXfeaZZ056hm9/+9tw4YUX\nwvbt2+Guu+4C3/cXpK3mAzOmzy3MvvrcwdiQswSl1IL8h5dW6oUXXlBr1qxRExMTSimlJicn1dTU\nlNL42te+pv74j/9YKaXUPffco/76r/9aSdB1Fuw+3+r/6XZ+8MEH1Z133hm0W6FQUL29verLX/6y\nUkqp++67T33sYx9TSin1jW98Q33iE59QSil12223qXe9611KKaUOHjyouru7Vb1eN+1v2vpN0dZK\noc1QSqlKpaI2bdqkJiYmVG9vr5qYmFB9fX3Ktm31q1/9Kvi8ZVnqO9/5jlJKqc997nNB+99+++3q\nwQcfnHVNpZT68Ic/rB566CGllFKXX365+vSnP62UUuonP/mJuvrqq5VSSn31q19Vn//855VSStVq\nNbVjxw7V19f3tug72da6Xe+55x51/vnnq1qtppRS6sYbb1Tf+ta3lFJKff3rX1fvfe97lVJK3XDD\nDer+++9XSin1la98RaVSKSXxVm6Xt1Jbm3Y+fTufyn7ItnvwwQfV7bffrpRCG/G9730vOLd582b1\n2GOPKaWU+vM//3P1h3/4h0optBN33323UkqpL33pS2rRokVqeHhY1et11d3drSYnJ9XTTz+tNm/e\nrCqViiqVSmrjxo3q2WefVX19fcqyLPXLX/5SKaXURz/6UfXFL34xuO6ePXuUUjw+9u3bp2666Sbl\nuq5SSqmPf/zjwfh4M/S9sR/nvq3nu682bXvmba3bVyljQ+b734JHOB9++GF4//vfDy0tLQAAkM/n\nYXBwEK699lrYsmULfPGLX4R9+/YFn6eONnid2LJlC/zsZz+Du+++G3bv3g2ZTAYAAG655RYAADjv\n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\nseTeJWiONOPCtgtP+Pvm2J9b/jl0j3Zj+QPLUUIJTeEmPPGJJ07VZZ4xmNCuqv9978+/h9vX3I5v\nvvpNNIWb8J/XU5/9ztXfwc2/uBlff/nr+Oicj5YnXYuTw7Z15XG88cNxHHzjqm/gmp9cg8ZwI85v\nOR+JHI3Vn1zySax8aiW+t+57WH3Tavzg//oBVj2zCslcEnOic8r3QkPPrRrntpyL25bdhgseorF6\n5fKVWNa8jITOGhbgnvX34LNrPovFTYtxx4oTj9ULGxfia1d+DR/58UdQLBXhdXlx78funbBYPFNg\n+/TpgV1Xnz7YMeTUwTkRt3vKB3ac0qk4NqeUbRTmBJhqO9++5nZcO//act3acY5v259xqvr0ewHv\n9n2fSltX/a8qjP8/4yf/4inEu91eU8FU2jqVS5XrSx7b/hh++uZPJ7yIv5fbpRKoVFvbdp4IO1af\n1t+348dpwqns17Zt/zjsGHLqcUb5cFpYWFhMFSerZbA4ddjQswF/+6u/RQklRANRPHz9w+/2Kb1v\nYdva4v0G26ctLP50YDOc73FUOgpj219gI16n9fffU239brfXVFDJtn4vt0slUKm2tu08Ee+18WMq\neLfvvR0/Th9shvP0wY4hpx4VzXCeSKnJ4tTCtvPpg23r0wfb1qcPtq1PH2xbnx7Ydj59sG19+mDb\n+vTBtvWpRcUynBYWFhYWFhYWFhYWFhZ/2rCGixYWFhYWFhYWFhYWFhYVgX3htLCwsLCwsLCwsLCw\nsKgI7AunhYWFhYWFhYWFhYWFRUVgXzgtLCwsLCwsLCwsLCwsKgL7wmlhYWFhYWFhYWFhYWFREdgX\nTgsLCwsLCwsLCwsLC4uKwL5wWlhYWFhYWFhYWFhYWFQE9oXTwsLCwsLCwsLCwsLCoiKwL5wWFhYW\nFhYWFhYWFhYWFYF94bSwsLCwsLCwsLCwsLCoCOwLp4WFhYWFhYWFhYWFhUVFYF84LSwsLCwsLCws\nLCwsLCoC+8JpYWFhYWFhYWFhYWFhURHYF04LCwsLCwsLCwsLCwuLiuD/B1zuinzPnZ5wAAAAAElF\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff016ee1e50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def make_image(X):\n",
    "    im = np.swapaxes(X.T, 0, 1)\n",
    "    im = im - im.min()\n",
    "    im = im * 1.0 / im.max()\n",
    "    return im\n",
    "\n",
    "plt.figure(figsize=(16, 5))\n",
    "for i in range(0, 10):\n",
    "    plt.subplot(1, 10, i+1)\n",
    "    plt.imshow(make_image(data['raw'][i]), interpolation='nearest')\n",
    "    true = data['CLASSES'][data['labels'][i]]\n",
    "    pred = data['CLASSES'][predicted[i]]\n",
    "    color = 'green' if true == pred else 'red'\n",
    "    plt.text(0, 0, true, color='black', bbox=dict(facecolor='white', alpha=1))\n",
    "    plt.text(0, 32, pred, color=color, bbox=dict(facecolor='white', alpha=1))\n",
    "\n",
    "    plt.axis('off')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Save our model\n",
    "Let's save the weights in pickle format, so we don't need Caffe next time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pickle\n",
    "\n",
    "values = lasagne.layers.get_all_param_values(net['output'])\n",
    "pickle.dump(values, open('model.pkl', 'w'))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
